home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 46 / Amiga Format CD46 (1999-10-20)(Future Publishing)(GB)[!][issue 1999-12].iso / -serious- / programming / other / tandem / teaching / 37.asm < prev    next >
Assembly Source File  |  1999-09-06  |  2KB  |  61 lines

  1. * 37.asm     TLaslfile          version 0.01    8.6.99
  2.  
  3.  
  4.  include 'Front.i'         ;*** change to 'Tandem.i' to step thru TL's ***
  5.  
  6.  
  7. ; TLaslfile puts up a requester to allow the user to choose a filepath
  8. ; for loading or saving. The demonstration below does not actually go on
  9. ; to open the file; so it is just for demonstration purposes. The filepath
  10. ; will be relative to the CD when TLAslfile runs. To use the MACRO
  11. ; TLaslfile, you:
  12. ;
  13. ;  point \1 to a DS.B to hold the directory part of the filepath
  14. ;  point \2 to a DS.B to hold the file part of the filepath
  15. ;  set \3 to the string number of the hail
  16. ;  set \4 to ld or sv   (if you omit \4, ld is assumed)
  17. ;
  18. ; the \1 and \2 should be of length 128 and 32 to be safe. You can make
  19. ; them null strings, or give them initial values to act as prompts.
  20. ; The Asl requester updates the \1 and \2 buffer to contain the path you
  21. ; choose, and TLasfile puts the total path (relative to the CD) in xxp_buff,
  22. ; ready for you to call TLOpenread or TLOpenwrite.
  23.  
  24.  
  25. strings: dc.b 0
  26. st_1: dc.b 'Test TLAslfile',0 ;1
  27.  dc.b 'This is an TLAslfile requester',0 ;2
  28.  dc.b 'You chose cancel',0 ;3
  29.  dc.b 'Error: Can''t open  window - out of chip memory',0 ;4
  30.  
  31.  ds.w 0
  32.  
  33.  
  34. dir: ds.b 128
  35. fil: ds.b 32
  36.  
  37.  
  38. * program to demonstrate TLaslfile
  39. Program:
  40.  TLwindow0                 ;open window
  41.  beq.s Pr_quit             ;go if can't
  42.  bsr Test                  ;do test of Aslfile
  43.  TLwclose                  ;close window & screen
  44.  rts                       ;return ok
  45.  
  46. Pr_quit:
  47.  TLbad #4                  ;return bad if out of chip memory
  48.  rts
  49.  
  50. * test Reqinput
  51. Test:
  52.  clr.b dir                 ;directory here (null prompt)
  53.  clr.b fil                 ;file here (null prompt)
  54.  TLaslfile #dir,#fil,#2,ld
  55.  bne.s Te_good
  56.  TLstrbuf #3               ;if cancel, report in buffer, else send path
  57.  
  58. Te_good:
  59.  TLreqchoose               ;report choice
  60.  rts
  61.